/*
    Name    : Multi-scale Retinex Base-code
    Author  : Junyoung Park <junyoung.park@kaist.ac.kr>
    
    History :
        2011-10-14 first draft

*/

#ifndef __ASRETINEX_H__
#define __ASRETINEX_H__

// include headers
#include <opencv/cv.h>


// Scale Retinex
class CScaleRetinex
{
public:
    CScaleRetinex();
    ~CScaleRetinex();

    // external interface
    cv::Mat *run_retinex (const cv::Mat &_src);
    cv::Mat *get_image () const;

private:
    cv::Mat *run_gaussian(const cv::Mat &_src, int _width, int _height);

//    void set_scale();
    void set_gauss_coefs (double _sigma);
    
//    void run_rescale(double *data, int size);

private:
    double m_coefs[5];      //!< Retinex coefficients
    cv::Mat *m_image;       //!< Retinex Result Image

};

#endif